# 当步长为正时:
# 可以省略起始位置:省略后默认起始位置从字符串开始位置进行切片
# 可以省略终止位置:省略后默认到字符串结束位置结束切片
# 可以省略步长:省略后默认步长为1, 如果省略步长可以省略步长前的:

str1 = '大江东去浪淘尽'

# 需求1: 获取   大江东去
print(str1[0:4:1])  # 大江东去
# 可以省略起始位置
print(str1[:4:1])  # 大江东去
# 可以省略步长
print(str1[:4:])  # 大江东去
# 省略步长时,也可以省略:
print(str1[:4])  # 大江东去

print('--------------------------')
# 需求2: 获取   浪淘尽
print(str1[4:7:1])  # 浪淘尽
# 可以省略结束位置
print(str1[4::1])  # 浪淘尽
# 可以省略步长
print(str1[4::])  # 浪淘尽
# 省略步长时,也可以省略:
print(str1[4:])  # 浪淘尽

print('--------------------------')
# 获取整个字符串全部内容
print(str1[0:7:1])
# 省略起始,结束和步长
print(str1[:])  # 最后一个:不能省略 , 这种写法相当于复制了一个字符串

print('--------------------------')
str1 = '大江东去浪淘尽'
# 当步长为负的时候(不能省略步长)
# 可以省略开始位置:省略后,默认从字符串结束位置开始切片
# 可以省略结束位置:省略后,默认切片到字符串开始位置

# 需求1: 获取  尽淘浪
print(str1[-1:-4:-1])  # 尽淘浪
# 可以省略开始位置
print(str1[:-4:-1])  # 尽淘浪

print('--------------------------')
# 需求2: 获取 去东江大
print(str1[3:-8:-1])  # 去东江大
# 可以省略结束位置
print(str1[3::-1])  # 去东江大

print('--------------------------')
# 获取全部字符串并从后往前依次取值
print(str1[::-1])  # 尽淘浪去东江大


# 注意:
# 1. 省略方式中,正数方式重点记忆,负数步长了解即可
# 2. 如果想要复制一个字符串可以使用str[:]
# 3. 如果想要反转一个字符串可以使用str[::-1]
